package ventanas;

import java.util.List;

import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.UIManager;
import org.jdesktop.swingx.JXTable;

import controlador.OpcionController;
import controlador.SeguridadController;

import bean.Opcion;

public class FIMantenimientoOpcion extends JInternalFrame {
	
	private JTextField txtDescripcion;
	private JPanel panel;
	private JLabel lblDescripcion;

	private JPanel pnlBotones;
	private JButton btnNuevo;
	private JButton btnModificar;
	private JButton btnEliminar;
	private JButton btnAceptar;
	private JButton btnCancelar;
	private JButton btnSalir;

	private JPanel pnlBusqueda;
	private JButton btnBuscar;
	private JTextField txtBuscar;
	private DefaultTableModel dtm;
	private String cabecera[] = {"Codigo","Descripcion"}, datos[][] = {};
	private JScrollPane scpScroll;
	private JXTable tbBusqueda;

	public FIMantenimientoOpcion() {
		setMaximizable(true);
		setIconifiable(true);
		setClosable(true);
		setSize(623, 379);
		setTitle("Mantenimiento de Opciones");
		getContentPane().setLayout(null);
		
		panel = new JPanel();
		panel.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "Datos de la Opcion", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel.setBounds(10, 11, 468, 57);
		panel.setLayout(null);
		
		txtDescripcion = new JTextField();
		txtDescripcion.setBounds(98, 24, 360, 20);
		panel.add(txtDescripcion);
		txtDescripcion.setColumns(10);
		
		lblDescripcion = new JLabel("Descripcion:");
		lblDescripcion.setBounds(10, 27, 88, 14);
		panel.add(lblDescripcion);

		getContentPane().add(panel);
		getContentPane().add(getPnlBusqueda());
		getContentPane().add(getPnlBotones());
		
	}
	
	private JPanel getPnlBusqueda() {
		pnlBusqueda = new JPanel();
		pnlBusqueda.setLayout(null);
		pnlBusqueda.setBounds(10, 79, 468, 262);
		pnlBusqueda.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "BUSCAR", TitledBorder.CENTER, TitledBorder.TOP, null, null));

		btnBuscar = new JButton("Buscar");
		btnBuscar.setBounds(393, 22, 65, 22);
		
		
		txtBuscar = new JTextField();
		txtBuscar.setBounds(98, 23, 273, 20);
		
		JLabel lblDescripcion = new JLabel("Descripcion:");
		lblDescripcion.setBounds(6, 26, 88, 14);
		pnlBusqueda.add(lblDescripcion);
		
		dtm = new DefaultTableModel(datos, cabecera);
		tbBusqueda = new JXTable(dtm);
		tbBusqueda.setEnabled(true);
		tbBusqueda.setEditable(false);
		scpScroll = new JScrollPane(tbBusqueda);
		scpScroll.setBounds(6, 54, 452, 194);
			
		pnlBusqueda.add(btnBuscar);
		pnlBusqueda.add(txtBuscar);
		pnlBusqueda.add(scpScroll);
		
		return pnlBusqueda;
	}
	
	private JPanel getPnlBotones() {
		pnlBotones = new JPanel();
		pnlBotones.setLayout(null);
		pnlBotones.setBounds(488, 17, 111, 324);
		pnlBotones.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "", TitledBorder.CENTER, TitledBorder.TOP, null, null));

		btnNuevo = new JButton("Nuevo");
		btnModificar = new JButton("Modificar");
		btnEliminar = new JButton("Eliminar");
		btnAceptar = new JButton("Grabar");
		btnCancelar = new JButton("Cancelar");
		btnSalir = new JButton("Salir");
		
		btnNuevo.setBounds(10, 11, 92, 40);
		btnModificar.setBounds(10, 62, 92, 40);
		btnEliminar.setBounds(10, 113, 92, 40);
		btnAceptar.setBounds(10, 164, 92, 40);
		btnCancelar.setBounds(10, 215, 92, 40);
		btnSalir.setBounds(10, 266, 92, 40);
		
		pnlBotones.add(btnEliminar);
		pnlBotones.add(btnModificar);
		pnlBotones.add(btnAceptar);
		pnlBotones.add(btnCancelar);
		pnlBotones.add(btnSalir);
		pnlBotones.add(btnNuevo);

		return pnlBotones;
	}
	

	public void limpiar() {
		txtBuscar.setText("");
		txtDescripcion.setText("");
	}
	
	public void activaControles() {
		btnNuevo.setEnabled(true);
		btnModificar.setEnabled(true);
		btnEliminar.setEnabled(true);
		btnSalir.setEnabled(true);
		scpScroll.setEnabled(true);
		tbBusqueda.setEnabled(true);
		btnBuscar.setEnabled(true);
		txtBuscar.setEnabled(true);   
	    txtDescripcion.setEnabled(false);
		btnAceptar.setEnabled(false);
		btnCancelar.setEnabled(false);
		btnNuevo.requestFocus();
	}
	
	public void desactivaControles() {

		btnNuevo.setEnabled(false);
		btnModificar.setEnabled(false);
		btnEliminar.setEnabled(false);
		btnSalir.setEnabled(false);
		scpScroll.setEnabled(false);
		tbBusqueda.setEnabled(false);
		btnBuscar.setEnabled(false);
		txtBuscar.setEnabled(false);
	    limpiarTabla();
		btnAceptar.setEnabled(true);
		btnCancelar.setEnabled(true);
		txtDescripcion.setEnabled(true);
		txtDescripcion.requestFocus();
		
	}
	
	public void limpiarTabla() {
		tbBusqueda.setModel(dtm = new DefaultTableModel(datos, cabecera));	
	}	
	
	public void cargarTabla(List<Opcion> opciones) {
		limpiarTabla();
		for (Opcion opcion : opciones) {
			Object datos[] = { 	opcion.getClass(),opcion.getDescripcion()};
			dtm.addRow(datos);
		}

	}
	
	public String getDescripcion(){
		return txtDescripcion.getText().trim();
	}
	
	public String geBuscar(){
		return txtBuscar.getText().trim();
	}
	
	public JButton getBtnNuevo(){
		return btnNuevo;
	}
	
	public JButton getBtnModificar(){
		return btnModificar;
	}
	public JButton getBtnSalir(){
		return btnSalir;
	}
	public JButton getBtnCancelar(){
		return btnCancelar;
	}
	public JButton getBtnEliminar(){
		return btnEliminar;
	}
	public JButton getBtnBuscra(){
		return btnBuscar;
	}
	public JButton getBtnGrabar(){
		return btnAceptar;
	}
	
	public void setControlador(OpcionController controlador){
		btnAceptar.addActionListener(controlador);
		btnCancelar.addActionListener(controlador);
		btnNuevo.addActionListener(controlador);
		btnEliminar.addActionListener(controlador);
		btnModificar.addActionListener(controlador);
		btnSalir.addActionListener(controlador);
		btnBuscar.addActionListener(controlador);
		
	}
	
}
